package com.gzsxy.esjy.request;

import io.netty.handler.codec.DecoderResult;
import io.netty.handler.codec.http.HttpHeaders;
import io.netty.handler.codec.http.HttpMethod;
import io.netty.handler.codec.http.HttpVersion;

import java.nio.charset.Charset;
import java.util.Map;

/**
 * httpRequest
 * @author zhangxiaolong
 * @date 2022/7/6 9:36
 */
public interface HttpServletRequest {

	/**
	 * 获取参数
	 * @param name
	 * @return
	 */
	public Object getParam(String name) ;
	
	/**
	 * 获取int参数
	 * @param name
	 * @return
	 */
	public int getInt(String name) ;
	
	/**
	 * 获取string参数
	 * @param name
	 * @return
	 */
	public String getString(String name) ;
	
	/**
	 * 获取请求用户
	 * @return
	 */
	public String getRemoteUser() ;
	
	/**
	 * 获取客户端ip
	 * @return
	 */
	public String getRemoteAddress() ;
	
	/**
	 * 获取请求体
	 * @return
	 */
	public String getRequestBody() ;

	/**
	 * 获取参数
	 * @return
	 */
	public Map<String,Object> getParams() ;
	
	/**
	 * 获取方法
	 * @return
	 */
	public HttpMethod getMethod();

	/**
	 * uri
	 * @return
	 */
	public String getUri() ;

	/**
	 * 获取协议版本
	 * @return
	 */
	public HttpVersion getProtocolVersion();

	/**
	 * 获取头部信息
	 * @return
	 */
	public HttpHeaders getHeaders();
	
	/**
	 * 获取头部信息
	 * @param name
	 * @return
	 */
	public String getHeader(String name);

	/**
	 * 获取结果
	 * @return
	 */
	public DecoderResult getDecoderResult();
	
	/**
	 * 获取请求内容类型
	 * @return
	 */
	public ContentType getContentType() ;
	
	/**
	 *	获取编码
	 * @return
	 */
	public Charset getCharset() ;
	
	/**
	 * 请求内容
	 * @return
	 */
	public long getContentLength() ;
	
	/**
	 * 是否结束
	 * @return
	 */
	public boolean isEnd() ;
}
